﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>ViewerControl</title>
<meta http-equiv="Content-Type" Content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../styles/styles.css">
<script language="javascript" src='../links.js' type="text/javascript"></script>
</head>
<body>

<h1>ViewerControl</h1>
<div class=navbar>
<a href="../index.html">главная</a> |
<a href="index.html">сервисные функции</a> |
<a href="../viewerapi/index.html">Viewer API</a>
</div>

<div class=shortdescr>
Функция <code>ViewerControl</code> позволяет запрашивать различную информацию о встроенной программе просмотра Far Manager и управлять её состоянием.
</div>

<pre class=syntax>
intptr_t WINAPI ViewerControl(
  intptr_t ViewerID,
  enum VIEWER_CONTROL_COMMANDS Command,
  intptr_t Param1,
  void *Param2
);
</pre>

<h3>Параметры</h3>
<div class=descr>
  <div class=dfn>ViewerID</div>
    <div class=dfndescr>Идентификатор экземпляра вьюера (текущий вьюер: <code>-1</code>). Каждый экземпляр встроенной программы просмотра имеет уникальный идентификатор, который не повторяется в текущей сессии Far Manager.</div>
  <div class=dfn>Command</div>
    <div class=dfndescr>Тип команды. Может быть одним из следующих (перечисление <a name="VIEWER_CONTROL_COMMANDS">VIEWER_CONTROL_COMMANDS</a>):
    <table class="cont">
    <tr class="cont"><th class="cont" width="40%">Команда</th><th class="cont" width="60%">Описание</th></tr>

    <tr class="cont"><td class="cont" width="40%"><a name="VCTL_GETINFO">VCTL_GETINFO</a></td>
    <td class="cont" width="60%">Получить информацию о программе просмотра.<br>
    <code>Param1</code> не используется.<br>
    <code>Param2</code> указывает на структуру <a href="../structures/viewerinfo.html">ViewerInfo</a>.<br>
    Всегда возвращается <code>TRUE</code>.</td></tr>

    <tr class="cont"><td class="cont" width="40%"><a name="VCTL_QUIT">VCTL_QUIT</a></td>
    <td class="cont" width="60%">Закрыть программу просмотра.<br>
    <code>Param1</code> и <code>Param2</code> должны быть <code>NULL</code>.<br>
    Всегда возвращается <code>TRUE</code>.</td></tr>

    <tr class="cont"><td class="cont" width="40%"><a name="VCTL_REDRAW">VCTL_REDRAW</a></td>
    <td class="cont" width="60%">Перерисовать окно программы просмотра.<br>
    <code>Param1</code> и <code>Param2</code> должны быть <code>NULL</code>.<br>
    В случае успеха возвращается <code>TRUE</code>.</td></tr>

    <tr class="cont"><td class="cont" width="40%"><a name="VCTL_SETKEYBAR">VCTL_SETKEYBAR</a></td>
    <td class="cont" width="60%">Функция, позволяющая управлять поведением строки функциональных клавиш в программе просмотра.<br>
    <code>Param1</code> не используется.<br>
    <code>Param2 = NULL</code> - восстановить предыдущее значение<br>
    <code>Param2 = -1</code> - обновить полосу (перерисовать)<br>
    <code>Param2</code> равен указателю на структуру <a href="../structures/farsetkeybartitles.html">FarSetKeyBarTitles</a>, новое значение.<br>
    В случае успеха возвращается <code>TRUE</code>.</td></tr>

    <tr class="cont"><td class="cont" width="40%"><a name="VCTL_SELECT">VCTL_SELECT</a></td>
    <td class="cont" width="60%">Управление выделением.<br>
    <code>Param1</code> не используется.<br>
    <code>Param2</code> указывает на структуру <a href="../structures/viewerselect.html">ViewerSelect</a>. Если <code>Param2 = NULL</code>, произойдёт сброс выделения.<br>
    В случае успеха возвращается <code>TRUE</code>.</td></tr>

    <tr class="cont"><td class="cont" width="40%"><a name="VCTL_SETMODE">VCTL_SETMODE</a></td>
    <td class="cont" width="60%">Изменить режим работы программы просмотра.<br>
    <code>Param1</code> не используется.<br>
    <code>Param2</code> указывает на структуру <a href="../structures/viewersetmode.html">ViewerSetMode</a>.<br>
    В случае успеха возвращается <code>TRUE</code>.</td></tr>

    <tr class="cont"><td class="cont" width="40%"><a name="VCTL_SETPOSITION">VCTL_SETPOSITION</a></td>
    <td class="cont" width="60%">Установить позицию в файле.<br>
    <code>Param1</code> не используется.<br>
    <code>Param2</code> указывает на структуру <a href="../structures/viewersetposition.html">ViewerSetPosition</a>.<br>
    В случае успеха возвращается <code>TRUE</code>.</td></tr>

    <tr class="cont"><td class="cont" width="40%"><a name="VCTL_GETFILENAME">VCTL_GETFILENAME</a></td>
    <td class="cont" width="60%">Получить имя открытого во вьюере файла.<br>
    <code>Param1</code> - размер буфера в символах, который выделил плагин для данных.<br>
    <code>Param2</code> указывает на буфер, выделенный плагином, куда будет помещено имя файла.<br>
    Функция возвращает требуемый размер буфера в символах, с учетом завершающего нуля.<br>
    Если <code>Param2 = NULL</code> или <code>Param1</code> меньше требуемого размера, функция просто вернет необходимый размер буфера.</td></tr>

    </table>
    </div>
  <div class=dfn>Param1</div>
    <div class=dfndescr>Указывает на параметры1 команды. Смотрите описание <code>Command</code>.</div>
  <div class=dfn>Param2</div>
    <div class=dfndescr>Указывает на параметры2 команды. Смотрите описание <code>Command</code>.</div>
</div>

<h3>Возвращаемое значение</h3>
<div class=descr>Смотрите описание конкретной команды.
</div>

<h3>Примечание</h3>
<div class=descr><code>VCTL_QUIT</code> в информационной панели и панели быстрого просмотра не приводит к закрытию программы просмотра.
</div>

<div class=see>Смотрите также:</div>
<div class=seecont>
<a href="index.html">Сервисные функции</a>,
<a href="../structures/viewerinfo.html">ViewerInfo</a>,
<a href="../structures/viewersetposition.html">ViewerSetPosition</a>,
<a href="../structures/viewerselect.html">ViewerSelect</a>
</div>

</body>
</html>
